package com.zp.self.module.level_4_算法练习.数据结构.二叉树.平衡二叉树;

import com.google.common.collect.Lists;
import org.junit.Test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author ：by Zeng Peng
 * @date ：Created 2022/6/2 21:51
 * @description ：验证是否是平衡二叉树
 */
public class 平衡二叉树_转字符串 {

    @Test
    public void checkAVL() {

        int[] arr = new int[]{1, 4, 5, 6,  32, 321,  2, 1, 1, 1 };
        AvlNode node = 平衡二叉树_插入_构建.buildAVL(arr);
        //验证平衡二叉树
        StringBuilder sb = new StringBuilder();
        printAVL(node, sb);
        System.out.println(sb.toString());
    }

    /**
     * 题目：打印平衡二叉树 (3,(2(2),(1)),(1))
       分析：
            1.深度递归+先序遍历
     **/
    public static void printAVL(AvlNode node, StringBuilder sb) {
        if (node == null) {
            return;
        }
        sb.append(node.data);
        if(node.lchild==null && node.rchild==null) return;
        sb.append("(");
        printAVL(node.lchild, sb);
        sb.append(")").append("(");
        printAVL(node.rchild, sb);
        sb.append(")");
    }
}
